from django.conf import settings
from django.contrib.auth.backends import ModelBackend
from django.core.exceptions import ImproperlyConfigured
from django.db.models import get_model
from konto.models import userModel

class UserBackend(ModelBackend):
        def authenticate(self, username=None, gacc=False):
		if gacc==True:
			user, nowy = self.user_class.objects.get_or_create(username=username)
			user.nowy = nowy
			if nowy: user.set_unusable_password()
			print 'baku ' + str(user.nowy)
			return user
		else:
			return None

        def get_user(self, user_id):
		try:
		    return self.user_class.objects.get(pk=user_id)
		except self.user_class.DoesNotExist:
		    return None

	@property
	def user_class(self):
	    if not hasattr(self, '_user_class'):
		self._user_class = get_model(*settings.CUSTOM_USER_MODEL.split('.', 2))
		if not self._user_class:
		    raise ImproperlyConfigured('Could not get custom user model')
	    return self._user_class
